package com.imc.platform.base.leave.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/*
 * 类描述：请假实体类
 * 开发者：YT
 * 创建日期：2018/10/27 22:20
 */
//@ToString(exclude = {"leaveDetails"})
//@EqualsAndHashCode(callSuper = false)
//@Entity
//@Table(name = "t_leave")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Leave implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;//主键ID

    /*
    审核人ID
     */
    private String auditorId;

    /*
    0，未查看，
    1，通过
    2，不允许
     */
    private int status;

    /*
    0,学生To老师
    1,老师To校长
     */
    private int flag;

    /*
    备注，请假
     */
    private String reason;

    /**
     * 创建时间，请假时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "createTime")
    private Date createTime;

    /**
     * 更新时间，审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "updateTime")
    private Date updateTime;

    private int userSubId;

    /**
     * 创建人
     */
    private String userId;

    @Transient
    private String userName;//用户名
    @Transient
    private String trueName;//真实名称
   @Transient
    private String lessonName;//课程
    @Transient
    private String lessonNumber;//课程号
    @Transient
    private String statusLabel;//状态标签
    @Transient
    private String startTime;//开始时间
    @Transient
    private String endTime;//结束时间
    @Transient
    private String auditorName;//审核人


    @Transient
    private List <LeaveDetail> leaveDetails;//请假详细实体类

    @Transient
    private int pageNumber;//当前页数
    @Transient
    private int pageSize;//每页多少条

}
